package cn.slg.test.Lambda;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Function;


@Data
@AllArgsConstructor
@NoArgsConstructor
public class WuJiang {

    // 这个集合，存放着普通攻击后要执行的函数
    List<Function<WuJiang, Boolean>> afterNormalAttack = new ArrayList<>();


    private Integer blood;

    public void normalAttack(WuJiang target) {
        // 发动普通攻击，减少
        target.setBlood(target.getBlood() - 1000);
        System.out.println("发动普通攻击，目标剩余血量:" + target.getBlood());

        // 普通攻击之后触发
        afterNormalAttack.stream().forEach(func -> {
            func.apply(target);
        });
    }

}
